package cjlu.ea.h.service.impl;

import cjlu.ea.h.entity.DBysfxshb;
import cjlu.ea.h.mapper.F103DBysfxshbMapper;
import cjlu.ea.h.service.F103DBysfxshbService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;

import java.util.ArrayList;
import java.util.List;

/**
 * <p>
 *  服务实现类
 * </p>
 *
 * @author testjava
 * @since 2022-07-03
 */
@Service
@Slf4j
public class F103DBysfxshbServiceImpl extends ServiceImpl<F103DBysfxshbMapper, DBysfxshb> implements F103DBysfxshbService {

    @Autowired
    F103DBysfxshbMapper f103DBysfxshbMapper;

    @Override
    public List<Object> getxfsxbys(DBysfxshb dBysfxshb, Long current, Long limit , String role) {
        QueryWrapper<DBysfxshb> wrapper = new QueryWrapper<>();

        //条件查询
        if(!StringUtils.isEmpty(dBysfxshb.getXh())){//学号
            wrapper.likeRight("xh",dBysfxshb.getXh());
        }
        if(dBysfxshb.getXm()!=null){//姓名
            wrapper.likeRight("xm",dBysfxshb.getXm());
        }
        if(dBysfxshb.getXy()!=null){//学院
            wrapper.likeRight("xy",dBysfxshb.getXy());
        }
        if(dBysfxshb.getBh()!=null){//班级
            wrapper.likeRight("bh",dBysfxshb.getBh());
        }
        if(dBysfxshb.getZyh()!=null){//专业
            wrapper.likeRight("bh",dBysfxshb.getBh());
        }
        if(dBysfxshb.getBz()!=null){//状态
            wrapper.eq("bz",dBysfxshb.getBz());
        }
        if(dBysfxshb.getDyzyzg()!=null){//第一专业毕业资格
            wrapper.eq("dyzyzg",dBysfxshb.getDyzyzg());
        }
        if(dBysfxshb.getDyzyxwzg()!=null){//第一专业学位资格
            wrapper.eq("dyzyxwzg",dBysfxshb.getDyzyxwzg());
        }
        if(dBysfxshb.getSzybyzg()!=null){//第二专业毕业资格
            wrapper.eq("szybyzg",dBysfxshb.getSzybyzg());
        }
        if(dBysfxshb.getSxwxwzg()!=null){//第二专业学位资格
            wrapper.eq("sxwxwzg",dBysfxshb.getSxwxwzg());
        }
        if(!StringUtils.isEmpty(role)){//权限控制
            wrapper.eq("xy",role);
        }

        //分页显示
        Page<DBysfxshb> page = new Page<>(current,limit);
        baseMapper.selectPage(page,wrapper);

        //数据查询获取
        List<DBysfxshb> list = page.getRecords();
        Long total = page.getTotal();
        List<Object> res = new ArrayList<>();
        res.add(list);
        res.add(total);
        log.info("ServiceImpl--F103 getxfsxbys(),查询辅修双专业学位数据成功.....");
        return res;



    }

    @Override
    public void SaveOrUpdateByXh(List<DBysfxshb> list) {
        f103DBysfxshbMapper.savaOrUpdateBatchByXh(list);
    }



}
